/*!
 * jRaiser Module Development Kit
 * Colored console (2013-01-15T15:24:45+0800)
 * http://jraiser.org/ | Released under MIT license
 */

// 配置各种控制台信息的颜色
var colors = require('colors');
colors.setTheme({
	input: 'grey',		// 输入
	prompt: 'grey',		// 提示
	info: 'green',		// 信息
	data: 'grey',		// 数据
	help: 'cyan',		// 帮助
	warn: 'yellow',		// 警告
	debug: 'blue',		// 调试
	error: 'red'		// 错误
});


// 替换 {{ 和 }} 之间的内容为特定颜色
function addColor(msg, type) {
	return msg.replace(/\{\{(.*?)\}\}/g, function($0, $1) {
		return $1[type];
	});
}

module.exports = {
	// 普通日志，无颜色
	log: function(msg) { console.log(msg); },
	// 信息
	info: function(msg) { console.log( addColor(msg, 'info') ); },
	// 警告
	warn: function(msg) { console.warn( addColor(msg, 'warn') ); },
	// 错误
	error: function(msg) { console.error( addColor(msg, 'error') ); },
	// 错误并退出
	errorExit: function(msg) {
		this.error(msg);
		process.exit(1);
	},
	// 打印对象，无颜色
	dir: function(obj) { console.dir(obj); }
};